package zsc.ruanc.practicaltraining.service;

import zsc.ruanc.practicaltraining.model.domain.TComplaint;
import zsc.ruanc.practicaltraining.model.vo.TimeVo;
import zsc.ruanc.practicaltraining.model.vo.handleVo;

import java.util.List;
import java.util.Map;

/**
 * 投诉模块
 */
public interface ComplaintService {

    /**
     *  用户投诉
     * @param complaint
     * @param userId  投诉者的用户id
     * @return
     */
    public boolean insert(TComplaint complaint, int userId);


    // 用户删除投诉
    public boolean delete(int id, int userId);

    // 用户查看自己的投诉列表
    public List<TComplaint> select(int userId);

    // 用户修改投诉信息 如果管理员已经处理完毕则不能修改
    public boolean update(TComplaint complaint, int userId);



    // -----------管理员权限--------------------------------

    /**
     * 分页
     *  cur
     *  size
     *  flag  flag==null 查询全部  flag==true 查询已处理过的 flag==false 查询未处理完的
     * @return
     */
    public Map adminSelect(TimeVo vo);


    /**
     *
     * @ id
     * @ toId
     * @ result
     * @ flag 如果管理员觉得已经解决问题，把flag改为true 则用户在不能修改投诉内容
     * @return
     */
    public boolean handle(handleVo vo);

    // 获得投诉者的用户id
    public int getFromId(int id);

}
